/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb;

import entidades.Administrador;
import entidades.Farmacia;
import excecoes.EntidadeExistenteException;
import excecoes.EntidadeNaoExistenteException;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Joel
 */
@Stateless
public class AdministradorBean {

      @PersistenceContext
    private EntityManager em;
    @EJB
    UtilizadorBean uBean;    

    public void criarAdministrador(String username, String nome, String email, String morada, String password, String tipo, int codFarmacia) throws EntidadeExistenteException{
        try {
            if(uBean.existeUsername(username)){
                throw new EntidadeExistenteException("Utilizador já existente!");
            }
             Farmacia farmacia = em.find(Farmacia.class, codFarmacia);
            if(farmacia == null){
                throw new EntidadeNaoExistenteException("Farmácia não existente!");
            }
            em.persist(new Administrador(username, nome, email, morada, password, tipo, farmacia));
        } catch (EntidadeExistenteException e) {
            throw e;
        } catch (Exception e) {
            throw new EJBException(e.getMessage());
        }
    }   
    
}
